#ifndef _CONFIG_READER
#define _CONFIG_READER

#include<string>
#include<map>
#include"ConfigName.h"
#define CMD_PARAM_CONFIG_FILE 1
class ConfigReader {
    public :
        ConfigReader();

        // 从文件加载配置信息
        void loadConfigFile();

        // 读取配置
        std::string getConfig(std::string key);

        // 带默认值的读取配置
        std::string getConfig(std::string key, std::string default_value);

        // 设置配置项信息
        ConfigReader* setConfig(std::string key, std::string value);

        // 输出当前的配置信息
        void printConfig();

        // 加载命令行参数
        void readCmd(int argc, const char * argv[]);

        // 取命令行参数
        std::string getCmdParam(int key, std::string default_v);
    private:
        std::map<std::string,std::string> configMap;
        std::map<int, std::string> cmdMap;
        int argc;
        char * argv[];
};

extern ConfigReader configReader;

#endif